home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / NEWS.s48-0.36 < prev    next >
Text File  |  1995-10-13  |  21KB  |  498 lines

  1. -*- Mode: Indented-text; -*-
  2.  
  3. Recent changes to Scheme 48.
  4.  
  5. 3/22/94  (version 0.36)
  6.          Removed doc/lsc.ps for copyright reasons.
  7.          Fixed (* 47123 46039) multiply bug.
  8.          Modified vm/README to make it easier to run the VM.
  9.  
  10. 3/16/94  (version 0.35)
  11.      Fixed (exact->inexact 0.1) -> 0..1. bug.
  12.          Fixed VM bug that permitted the creation of stored objects with
  13.        negative sizes.
  14.  
  15. 3/8/94   (version 0.34)
  16.      "make check" target tests out various features.
  17.      Fixes for SGI IRIX 4.0.5 and MIPS RISC/OS 4.51, courtesy
  18.        Bryan O'Sullivan.
  19.      debug/run.scm and the "medium system" work again now.
  20.      misc/static.scm should work on the 68000.
  21.      Command processor no longer fluid-binds (interaction-environment)
  22.        on recursive entry.
  23.  
  24. 2/24/94  (version 0.33)
  25.      Fixed bug in VM's interrupt system.
  26.      Made non-local srcdir work in Makefile.
  27.      Added (load-package 'bigbit) to vm/README.
  28.  
  29. 2/23/94  (version 0.32)
  30.      Some incompatible changes to the VM; .image files will have
  31.        to be rebuilt.
  32.      Improvements to configuration script and to unix.c to support
  33.        a wider variety of Unixes.  The system should now work
  34.        under any Posix-compliant Unix (except maybe for
  35.        char-ready?; see comments in unix.c).
  36.      Upped the default heap size from 4 meg (2 per semispace) to 6
  37.        meg (3 per semispace).
  38.      New command line argument -s <size> for specifying size of
  39.        stack buffer.  Default is 2500 (words).
  40.          $@ -> "$@" in script (thanks to Paul Stodghill for this fix).
  41.      Obscure interrupt/exception VM bug fixed.
  42.      It is now possible to put an initial heap image into static
  43.        memory (effectively allocated by OS process creation).
  44.        Immutable initial objects go into static read-only memory,
  45.        and mutable initial objects go into static read-write
  46.        memory.  Initial objects not copied by the GC.  There is no
  47.        documentation yet, but look at the rules for little and
  48.        debug/little.o in the Makefile if you're interested.
  49.  
  50. 2/13/94  (version 0.31)
  51.      Incompatible changes:
  52.        In interfaces, all exported syntactic keywords must be
  53.          given type :syntax.  For example,
  54.            (define-interface my-macros
  55.              (export (my-macro :syntax) ...))
  56.        Image entry procedures for the ,build command are now
  57.          passed a list of strings, not just a single string, for
  58.          the command line arguments following -a.
  59.        The names of the macros defined in scheme48.h
  60.          (pairp, car, string_length, etc.) are now all upper case.
  61.      New "configure" script generates Makefile from Makefile.in
  62.        and sysdep.h from sysdep.h.in (thanks to Gnu autoconf).
  63.        See INSTALL and doc/install.txt.
  64.      Bug fixes:
  65.            Can now make vectors (strings, etc.) as big as the amount
  66.              of heap space available (but you're still screwed if you
  67.              try to make one bigger than 2^23-1 bytes - don't do it).
  68.        Non-ANSI-ness fixed in scheme48vm.c (jump out of, then
  69.          back into, a block expected block-local variables to be
  70.          unchanged).
  71.        Fixed big/external.scm (had VECTOR-POSQ instead of ENUM).
  72.        In (define-syntax foo bar) you got an error if bar was a
  73.          variable reference.
  74.        Plugged a storage leak (file-environments table in
  75.          env/debug.scm).  Images made with ,build were too large.
  76.        Flushed extraneous delay from make-reflective-tower.
  77.      Renamed variables in Makefile to resemble Gnu standards.
  78.      Fixed definition of LINKER_RUNNABLE in Makefile.
  79.      Added doc/call-back.txt.
  80.      Fixed define-enumerated documentation (doc/big-scheme.txt).
  81.      Environment maps no longer retained for things in initial.image
  82.        and scheme48.image.  This makes scheme48.image about 170K
  83.        smaller.
  84.  
  85. 2/3/94   (version 0.30)
  86.      Faster EXPT.
  87.      FLOATNUMS improvement: (inexact->exact <float>) should now
  88.        work, e.g. 
  89.            (inexact->exact (/ 1. 3.)) => 6004799503160661/18014398509481984
  90.          Reinstated ACCESS-SCHEME-48 for the benefit of PSD (portable
  91.            scheme debugger) and a certain other software package that
  92.            shall remain nameless.  It only knows about a small number of
  93.            procedures, including things like ERROR and FORCE-OUTPUT.
  94.          Various changes to support the Pre-Scheme compiler, notably
  95.        SET-REFLECTIVE-TOWER-MAKER!.
  96.      Incompatible change to the ENUMERATED structure: the names
  97.        foo/bar no longer become defined.  Write (enum foo bar)
  98.        instead.  This will macro expand into the correct small
  99.        integer.
  100.  
  101. 1/30/94  (version 0.29)
  102.      Fixed ps_run_time() to call sysconf() to find out how many
  103.        ticks there are per second.  It used to assume 60.  This
  104.        affects the output of the ,time command, so don't try
  105.        comparing numbers from this version with numbers from older
  106.        versions.
  107.      ,time command will now accept a command, e.g.
  108.        ,time ,load foo.scm.
  109.      It appears that if multiple arguments follow -a on the
  110.        argument line, they are concatenated together with spaces
  111.        separating them and passed to the startup procedure.  I
  112.        don't know how long this has worked.  This will change in
  113.        the future so that the startup procedure gets a list of
  114.        strings.
  115.      Installed what used to be called the GENERAL-TABLES structure
  116.        as the TABLES structure used by the system.  This allows
  117.        the use of other comparison predicates besides EQ?, and
  118.        eliminates some code that had a restrictive copyright
  119.        notice.
  120.          ENUM, NAME->ENUMERAND, and ENUMERAND->NAME are all macros.
  121.          Enumerated types themselves are now macros as well.
  122.  
  123. 1/23/94  Fixed bad multiplication bug in VM: (* 214760876 10) was
  124.        returning 125112.
  125.      Moved RECORD-TYPE? and RECORD-TYPE-FIELD-NAMES from the
  126.        RECORDS-INTERNAL interface to the RECORDS interface, for
  127.        a somewhat closer approximation to MIT Scheme.
  128.          Various type system improvements.
  129.      Still no documentation for the ,exec package, but see
  130.        link/load-linker.exec for an example.
  131.      New generic function feature, exported by the METHODS
  132.        interface (see interfaces.scm), almost like in a certain
  133.        dynamic object-oriented language.
  134.  
  135. 1/11/94  (version 0.27)
  136.      Change:
  137.        The isomorphism used by CHAR->INTEGER and INTEGER->CHAR is
  138.          no longer ASCII.  This change was introduced in order to
  139.          assist the development of portable programs.  If you need
  140.          ASCII encoding, you should open the ASCII structure and
  141.          use the procedures CHAR->ASCII and ASCII->CHAR.
  142.          Features:
  143.        The help system is somewhat improved.
  144.        New form DEFINE-STRUCTURE defines a single structure.
  145.      Incompatible changes to package system:
  146.        Renamed DEFINE-PACKAGE to DEFINE-STRUCTURES
  147.        Renamed DEFINE-STRUCTURE to DEFINE
  148.        Renamed all the base types from FOO to :FOO.  E.g.
  149.          :SYNTAX, :VALUE, :PAIR, etc.
  150.          Other:
  151.        Removed socket support due to restrictive copyright on some
  152.          of the C code that was in extension.c.
  153.  
  154. 12/21/93 ,take has been flushed in favor of ,exec ,load.  Commands are
  155.        now accessed via a distinguished package instead of a table.
  156.        Documentation pending.
  157.          Postscript (.ps) files now included in doc/ subdirectory.  (I
  158.            thought they had been there all along, but apparently I was
  159.            wrong.)
  160.          Enhanced, but still kludgey, floating point support.  Use
  161.        ,open floatnum.
  162.  
  163. 12/12/93 (version 0.26)
  164.      NetBSD port.
  165.      Hacked write-level and write-depth for inspecting circular
  166.        structure.
  167.      Recursive FORCEs signal errors, e.g.
  168.        (force (letrec ((loser (delay (force loser)))) loser))
  169.  
  170. 12/7/93 (version 0.25)
  171.          Bug fix:
  172.        filenames.make can now be remade using initial.image.  This
  173.          means that you can snarf a distribution and then edit
  174.          USUAL-FEATURES before making scheme48.image.
  175.  
  176.  
  177. 12/6/93  Incompatible changes:
  178.        Change of terminology: "signature" --> "interface".
  179.          This means that DEFINE-SIGNATURE is now called
  180.          DEFINE-INTERFACE, etc.
  181.            Some structures have been renamed:
  182.          condition -> conditions
  183.          continuation -> continuations
  184.          exception -> exceptions
  185.          queue -> queues
  186.          port -> ports
  187.          record -> records, record-internal -> records-internal
  188.          table -> tables
  189.          template -> templates
  190.        The ,load-into command has been removed.  Use ,in ... ,load
  191.          instead (see below), e.g.
  192.            ,in mumble ,load myfile.scm
  193.            The heap size for -h is specified in words, not bytes.  As
  194.          before, the size must account for both semispaces; -h 2n
  195.          means n words per semispace.  This change was actually
  196.          made a while ago, but I was confused as to what it meant.
  197.          Bug fixes:
  198.        #e1.7 reads as 17/10, (exact? 1+1.0i) => #f, and 1.0+i prints.
  199.          Features:
  200.        Things like ((structure-ref scheme if) 1 2 3) work.
  201.        The following commands now take arbitrary commands to execute
  202.          in the specified package, not just forms:
  203.            ,config   ,user   ,for-syntax   ,in <package>
  204.              For example, you can say
  205.            ,in mumble ,trace foo
  206.              This subsumes the functionality of the ,load-into and
  207.          ,load-config commands.
  208.            Dynamic loading of shared libraries for System V systems
  209.          (untested).
  210.          Documentation:
  211.        Somewhat improved.  user-guide.txt now lists most of the
  212.        interesting built-in packages.  lsc.ps is a draft of "A
  213.        Tractable Scheme Implementation," a paper submitted to Lisp
  214.        and Symbolic Computation.  See also doc/big-scheme.txt,
  215.        doc/thread.txt, and doc/external.txt.
  216.  
  217.  
  218. 10/30/93 LET-SYNTAX and LETREC-SYNTAX.
  219.      Arrays (see big/array.scm).
  220.      Lots of internal changes.
  221.  
  222. 7/20/93  Features:
  223.        Type system.  See doc/types.txt.
  224.  
  225. 7/4/93   Features:
  226.            New define-package clause (for-syntax <clause>*).
  227.          E.g. (define-package ((my-package ...))
  228.             (open ...)
  229.             (for-syntax (open scheme my-utilities)
  230.                     (files more-crud-for-syntax))
  231.                     ...)
  232.            A file name to package map is now used by the emacs
  233.          interface.  Whenever you load a file, or zap from a file that
  234.          hasn't been previously loaded or zapped, the package in
  235.          which forms are being evaluated is remembered in a table.
  236.          The next time you zap some forms from the same file, they
  237.          will be evaluated in that package.
  238.          Sometimes you may get an association you don't want.  In that
  239.          situation, you can use the ,forget command to delete an
  240.          entry in the table.
  241.            A new ,push command goes to a deeper command level.
  242.        Experimental "command preferred" command processor mode: if
  243.          you give the command ",form-preferred off", commands will
  244.          be "preferred" to forms, meaning that you don't need to
  245.          type a comma before giving a command.  To see the value
  246.          of a variable FOO you have to say (begin foo).
  247.            Experimental "no levels" command processor mode: if you
  248.          give the command ",levels off", then an error will not
  249.          push a new command level.  If you want to ignore an
  250.          error, you don't need to take any action - further
  251.          evaluations will happen at top level.  If you want to
  252.          enter the inspector or get a preview, you can issue these
  253.          commands or a ,push command immediately after the error
  254.          occurs (more precisely, any time until the focus object
  255.          is set by some other command).
  256.        All of the mode-control commands (batch, bench,
  257.          break-on-warnings, form-preferred, and levels) take
  258.          an optional argument.  When no argument is given, they
  259.          will toggle the corresponding mode.  With an argument of
  260.          ON or OFF, they turn the mode on or off.
  261.            The ,flush and ,keep commands have been made more flexible
  262.          and verbose.
  263.  
  264.  
  265. 6/18/93  Incompatible changes:
  266.        The access-scheme48 procedure has gone away.  Use ,open
  267.          or the module system instead.
  268.            The user, configuration, and for-syntax packages no longer
  269.          have variables bound to them in the configuration package.
  270.          Where previously you said:       Now you should say:
  271.           ,in user <form>                  ,user <form>
  272.           ,in config <form>                ,config <form>
  273.           ,in for-syntax <form>            ,for-syntax <form>
  274.           ,load-into config <file>         ,load-config <file>
  275.           ,load-into for-syntax <file>     ,for-syntax (load "file")
  276.  
  277.      Features:
  278.            There is an ,expand <form> command for debugging macros.
  279.        The ,open  command takes any number of structure names, and opens
  280.          them all (like ,new-package).
  281.        New procedure DEFINE-INDENTATION exported by the PP structure.
  282.          E.g. (define-indentation 'let-fluid 1) is like Gnu emacs's
  283.          (put 'let-fluid 'scheme-indent-hook 1).
  284.            The inspector simplifies generated names in continuation
  285.          source code display.  E.g. when formerly it said
  286.            "Waiting for (#{Generated lambda} () (x->node (car exps)))"
  287.          now it says 
  288.            "Waiting for (lambda () (x->node (car exps)))"
  289.            Macros can signal syntax errors by returning input expression
  290.          unchanged.  (Comparison uses EQ?.)
  291.  
  292.          Documentation:
  293.        The doc/ directory contains a draft of a "Scheme 48
  294.          Progress Report."
  295.  
  296.          Cleanup:
  297.        Procedure NULL-TERMINATE added to structure EXTERNALS's
  298.          signature.
  299.        "Vulgar Scheme" renamed to "Big Scheme".
  300.        Two new subdirectories, env/ (for programming environment)
  301.          and big/ (for Big Scheme), now contain most of what was
  302.          in the misc/ directory.
  303.            Several source files that were in the top level and link/
  304.          directories have moved to the env/ and alt/ directories.
  305.  
  306.  
  307. 5/6/93   Bug fixes:
  308.        Fixed -h command line switch.  The size was being improperly
  309.          divided by 4, so if you asked for an N megabyte heap, you'd
  310.          actually only get an N/4 megabyte heap.
  311.        Nested backquotes were broken for a while; should be fixed
  312.          now.
  313.  
  314.          Features:
  315.        Quoted structure is read-only: e.g. (set-car! '(a b) 3) will
  316.          produce an exception.
  317.        ,config [<form>] and ,user [<form>] are like ,in <struct> <form>.
  318.        Unix socket support; see misc/socket.scm.
  319.        Now using gzip instead of compress for distributions.
  320.        ,open command offers to load packages.
  321.        A .gdbinit file sets a breakpoint at CM's exception raising
  322.          code, and defines a handy "preview" command.
  323.  
  324. 1/18/93  Feature:
  325.            Scheme 48 distributions now have version numbers.  The
  326.          version number is printed in the image startup message.
  327.          Please include it in bug reports.
  328.          The module system is now documented.  See doc/module.tex.
  329.  
  330. 12/17/92 Bug fixes:
  331.            Macro templates of the form (x ... y) are supported.
  332.        Macro templates are now less fussy about meta-variable
  333.          rank: you can do "(x y) ..." even when the rank of either
  334.          x or y (but not both) is too low; the low-ranking text
  335.          will be copied as many times as necessary.  (A
  336.          meta-variable's "rank" is the number of ...'s it sits
  337.          under in the left-hand side of the rewrite rule.)
  338.        SYNTAX-RULES is now itself hygienic.  This means you can
  339.          have a meta-variable named CAR, for instance.
  340.  
  341.          New development environment features:
  342.        Commands now start with comma (",") instead of colon
  343.          (":").  (Easier to type since it's not shifted.)
  344.        values, call-with-values, dynamic-wind, eval,
  345.          interaction-environment, and scheme-report-environment
  346.          added per upcoming Revised^5 Scheme report.  See
  347.          doc/meeting.tex.
  348.        Modifications to quoted structure will now be detected and
  349.          reported as errors.
  350.        An interrupt will occur if an insufficient amount of memory
  351.          is reclaimed by a garbage collection.
  352.        Inspector now accepts arbitrary command processor commands
  353.          (with or without leading comma)
  354.            ,keep command controls retention of debugging information.
  355.  
  356.      Features removed:
  357.        #\page and #\tab.  These aren't in the Scheme report.
  358.          Their absence in Scheme 48 will encourage portability.
  359.        access-scheme48 works with fewer names than before.  Use the
  360.          package system instead.
  361.            Complex numbers not in the system, by default.  Get them
  362.          back by changing usual-features in more-packages.scm.
  363.  
  364.      Features changed:
  365.        Many changes to package system.  See doc/module.tex.
  366.            The :identify-image command is gone.  Instead, supply a
  367.          second argument (optional) to the ,dump command.
  368.        The inspector's TEM command has been shortened to T.
  369.  
  370.          Internal changes and features:
  371.        Stored objects types are now part of the virtual machine
  372.          architecture, i.e. known to the byte-code compiler.
  373.        Run-time system is split up into many little modules.
  374.        File names are retained in debug database.  (But not used for
  375.          anything yet...)
  376.        Tweaks to table package reduce standard image size by 50K
  377.          and increase compiler speed by 7%.
  378.        Immutability bit in object headers.
  379.        Weak pointers.
  380.  
  381. 7/18/92  Features removed:
  382.        Table package's default hash function no longer supports
  383.          string, pairs, or vectors.
  384.  
  385. 7/9/92   Bug fixes:
  386.        (- 0 -536870912)
  387.        Inspector now uses command i/o ports instead of current ones
  388.        Inexact integers print as N. instead of #iN
  389.        Throwing back into a call-with-....put-port now produces a
  390.          warning instead of an error
  391.  
  392.      Feature fixes:
  393.        In DEFINE-PACKAGE, OPEN no longer implies ACCESS.
  394.        misc/receive.scm renamed to rts/values.scm, made to conform
  395.          with Revised^5 Report, and installed internally.
  396.  
  397.      Features:
  398.        New :load-package command.  Uses file names in (file ...) clause
  399.          of a define-package.  These are interpreted relative to the
  400.          directory in which the file containing the define-package
  401.          was found.
  402.        #\tab and #\page now print this way.
  403.  
  404.  
  405. 6/17/92  Bug fixes:
  406.        Fixed bug in modulo.
  407.        Flushed LAST-PAIR (which disappeared between R^3 and R^4).
  408.        DEFINE-SYNTAX and SYNTAX-RULES now exist.
  409.        CEILING, FLOOR, and ROUND now exist.
  410.        GCD and LCM are now n-ary.
  411.        STRING-CI=? and STRING-COPY fixed.
  412.        STRING->SYMBOL now copies its argument before handing it to
  413.          INTERN.
  414.        =, <, etc. now work with more than two arguments.
  415.        CHAR-READY? exists.
  416.        Calls via APPLY are now tail-recursive.
  417.        DISPLAY of vectors and lists works (ugh).
  418.  
  419.      Development environment improvements:
  420.        Type ? at inspector to get list of inspector commands.
  421.        Inspector D command goes to next continuation.
  422.        Inspector M command shows more of a long menu.
  423.        Inspector TEM command goes to a continuation's or closure's
  424.          template.
  425.        For closures and continuations, inspector displays local
  426.          variables with their names. 
  427.        For continuations, inspector displays source code for
  428.          expression into which control will return.
  429.        Multiple command loop levels.  EOF (control-D) now only pops
  430.          out a single level.  :reset pops all the way out.  :level n
  431.          goes out to level n.
  432.        Can disable benchmark mode.
  433.        Procedures made with (let ((f (lambda ...))) ...) now print
  434.          with names.
  435.  
  436.      Features:
  437.        Package system: special forms define-package and package-ref;
  438.          command processor commands :set-package, :load-into,
  439.          :clear-package, :new-package, :export, :open-package, etc.
  440.        In misc directory: threads, queues, extended ports, format, etc.
  441.  
  442.      Changes to system environment:
  443.        user-initial-environment -> user-package
  444.        record-updator -> record-modifier
  445.        primitive-throw superseded by with-continuation
  446.        ash -> arithmetic-shift
  447.        New bootstrap regime.
  448.        Support for threads: alarm clock interrupt, etc.
  449.  
  450.      Etc.:
  451.        Liberal COPYRIGHT file, and a little notice in each source file.
  452.        INSTALL and NEWS split off from README.
  453.        doc.txt renamed to user-guide.txt.
  454.        The Makefile now provides two ways to make "s48" for
  455.          installation.  One depends on the exec #! script execution
  456.          feature and the other doesn't.
  457.        "make" targets for testsys.image and little.image.
  458.        Runs Jaffer's test suite and library.
  459.        Flushed s48.el.  Use cmuscheme instead.
  460.  
  461.  
  462. 9/5/90   Command processor argument parser revamped.
  463.      :load, :trace, and :untrace commands take arbitrary number
  464.        of arguments.  Argument to :proceed is optional.
  465.      New (but undocumented) :identify-image command.
  466.      Better error messages: wrong number of arguments, undefined
  467.        variable.
  468.      +, *, min, max, apply are now n-ary; -, /, make-string,
  469.        make-vector, read-char, peek-char, write-char have
  470.        appropriate argument optionality.
  471.      Better internal support for macros; not yet ready for release.
  472.      Added STRING as per R^3.99RS.
  473.      More testing of Scheme version of bytecode interpreter.
  474.      Better scoping of ##; files can't see command processor context.
  475.      OR and CASE don't cons closures.
  476.      VM checks for non-existent heap image file, gives error
  477.        message instead of "bus error".
  478.      Numerous internal changes in compiler and exception system.
  479.      Fixed char<?.
  480.      Fixed -.5 bug in string->number.
  481.  
  482. 8/26/90  Tested (link-system) inside of T; seems to work.
  483.      Benchmark mode available via :BENCH command.
  484.      System is 15K bigger due to new fatter global environment
  485.        representations.
  486.      Inspector abbreviation improved.
  487.      Disassembler now works on continuations, sort of.
  488.  
  489. 7/26/90  ((lambda ...) ...) no longer makes a closure
  490.      Features now in default system:
  491.         :inspect
  492.         :dis[assemble]
  493.         Generic arithmetic: bignums, rationals, complexes
  494.         rationalize
  495.         :time command is more verbose
  496.      MOREFILES variable in Makefile for loading extra stuff
  497.      Default heap size increased to 2 megabytes per semispace
  498.